<template>
  <div>
    <input v-model="searchKeyword" placeholder="输入关键字搜索">
    <table class="my-table">
      <thead>
        <tr>
          <th>就诊日期</th>
          <th>医生姓名</th>
          <th>诊断结果</th>
          <th>处方信息</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="record in filteredData" :key="record.id">
          <td>{{ record.date }}</td>
          <td>{{ record.doctor }}</td>
          <td>{{ record.diagnosis }}</td>
          <td>{{ record.prescription }}</td>
          <td @click="showDetails(record)">详情</td>
        </tr>
      </tbody>
    </table>
    <ModalComponent 
      :isModalOpen="isModalOpen" 
      :record="selectedRecord" 
      @close="closeModal"
    />
  </div>
</template>

<script>
import ModalComponent from './components/ModalComponent.vue';

export default {
  components: {
    ModalComponent
  },
  data() {
    return {
      searchKeyword: '',
      records: [
  {
    date: '2022-01-01',
    doctor: '张三',
    diagnosis: '感冒',
    prescription: '感冒药',
  },
  {
    date: '2022-02-01',
    doctor: '李四',
    diagnosis: '头疼',
    prescription: '止疼药',
  },
  {
    date: '2022-03-01',
    doctor: '王五',
    diagnosis: '腰痛',
    prescription: '止痛贴',
  }
],
      filteredData: [],
      isModalOpen: false,
      selectedRecord: {}
    };
  },
  methods: {
    filterData() {
      this.filteredData = this.records.filter(record =>
        record.date.includes(this.searchKeyword) ||
        record.doctorName.includes(this.searchKeyword) ||
        record.diagnosis.includes(this.searchKeyword) ||
        record.prescription.includes(this.searchKeyword)
      );
    },
    showDetails(record) {
      this.selectedRecord = record;
      this.isModalOpen = true;
    },
    closeModal() {
      this.isModalOpen = false;
    }
  },
  watch: {
    searchKeyword() {
      this.filterData();
    }
  },
  created() {
    this.filteredData = this.records;
  }
};
</script>

<style scoped>
.my-table {
  border-collapse: collapse;
  width: 100%;
}

.my-table td, .my-table th {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: left;
}

.my-table th {
  background-color: #f2f2f2;
}
</style>